/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

import modelo.ModeloIngrediente;
import modelo.ModeloIngredienteDAO;
import modelo.ModeloProductoDAO;

import vista.VistaListados;


/**
 *
 * @author usuario
 */
public class ControladorListados implements ActionListener {
    private VistaListados vista;
    private ModeloIngredienteDAO modeloIngrediente;
    private ModeloProductoDAO modeloProducto;
	private boolean ordenar,ingrediente,producto,mas;
	private DefaultTableModel modelo;
	
	public static void main(String[] args) {
		new ControladorListados();
	}
	
	
    public ControladorListados() {
        vista= new VistaListados();
        vista.setVisible(true);
        modeloIngrediente= new ModeloIngredienteDAO();
        modeloProducto = new ModeloProductoDAO();
        vista.addlistener(this);
        
        modelo= new DefaultTableModel();
        cancelar();
    }
    

    private void cancelar() {
    	ordenar=false;
        ingrediente=false;
        producto=false;
        mas=false;
        modelo.setRowCount(0);
	}


	public void actionPerformed(ActionEvent ae) {
	
    	 if(ae.getActionCommand().equals("Listar")){    		 
    		 if(ingrediente){
    			 Vector<modelo.ModeloIngrediente> v = modeloIngrediente.listar();
    				modelo = new DefaultTableModel(null, new String[] {"Ingrediente","Stock"});
    		        vista.getTblListados().setModel(modelo);
    		        Vector f;
    		        for (ModeloIngrediente m : v) {
    		        	f =new Vector();
    		       	 	f.add(m.getDescripcion());
    		       	 	f.add(m.getStock());
    		       	 	modelo.addRow(f);
    				}  			 
    		 }
    		 else if(producto){
    			 Vector<String []> v = modeloProducto.listarVentas(ordenar);
    				modelo = new DefaultTableModel(null, new String[] {"Producto","Ingreso","Cantidad"});
    		        vista.getTblListados().setModel(modelo);
    		        Vector f = null;
    		        for (String [] s : v) {
    		        	 f =new Vector();
    		        	for (String string : s) {
    		           	
    		           	 f.add(string);
    		       	 }
    		       	 	modelo.addRow(f);
    				}
    			 
    		 }
    		 else if(mas){
    			 	modelo = new DefaultTableModel(null, new String[] {"Ingrediente","Cantidad"});
    		        vista.getTblListados().setModel(modelo);
    				Vector<String []> v = modeloProducto.ingredientesMasUsados(ordenar);
    		        Vector f= null;
    		        for (String [] s : v) {
    		        	f =new Vector();
    		       	 	for (String string : s) {
    		       	 		f.add(string);
    		       	 	}
    		       	 modelo.addRow(f);
    				}
    			
    		 }
    		 else
    			 vista.mostrarMensaje("Debe selecionar el Listado");

     }
     else if(ae.getActionCommand().equals("Asc")){
         ordenar = true;
     }
     else if(ae.getActionCommand().equals("Des")){
         ordenar = false;
     }
     else if(ae.getActionCommand().equals("Ingredientes")){
         ingrediente=true;
         mas=false;
         producto=false;
     }
     else if(ae.getActionCommand().equals("Productos")){
    	 producto=true;
    	 mas=false;
         ingrediente=false;
     }
     else if(ae.getActionCommand().equals("Mas")){
    	 mas =true;
         ingrediente=false;
         producto=false;
     }
     else if(ae.getActionCommand().equals("Cancelar")){
    	 cancelar();
     }
     else if(ae.getActionCommand().equals("Salir")){
    	 vista.setVisible(false);
     }
            
    }





	

   

}
